package org.dromara.nursing.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.nursing.domain.ElderBasic;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 老人基础信息视图对象 ms_elder_basic
 *
 * @author Xue
 * @date 2025-04-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ElderBasic.class)
public class ElderBasicVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 老人id
     */
    @ExcelProperty(value = "老人id")
    private Long elderId;

    /**
     * 老人姓名
     */
    @ExcelProperty(value = "老人姓名")
    private String elderName;

    /**
     * 老人照片
     */
    private String elderPhoto;

    /**
     * 老人照片URL(前端显示用)
     */
    @org.dromara.common.translation.annotation.Translation(type = org.dromara.common.translation.constant.TransConstant.OSS_ID_TO_URL, mapper = "elderPhoto")
    private String elderPhotoUrl;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private Long gender;

    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    private Date birthDate;

    /**
     * 年龄
     */
    @ExcelProperty(value = "年龄")
    private Long age;

    /**
     * 证件类型
     */
    @ExcelProperty(value = "证件类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_card_type")
    private Long idCardType;

    /**
     * 证件号码
     */
    @ExcelProperty(value = "证件号码")
    private String idCard;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 血型
     */
    @ExcelProperty(value = "血型")
    private String bloodType;

    /**
     * 是否在院
     */
    @ExcelProperty(value = "是否在院", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_is_active")
    private Long isActive;

    /**
     * 家庭地址
     */
    @ExcelProperty(value = "家庭地址")
    private String addressDetail;

    /**
     * 照护者
     */
    @ExcelProperty(value = "照护者")
    private String caregiver;

    /**
     * 健康状况简述
     */
    @ExcelProperty(value = "健康状况简述")
    private String healthStatus;

    /**
     * 入住日期
     */
    @ExcelProperty(value = "入住日期")
    private Date admissionDate;

    /**
     * 房间号
     */
    @ExcelProperty(value = "房间号")
    private Long roomId;

    /**
     * 房间床位号
     */
    @ExcelProperty(value = "房间床位号")
    private String roomNumber;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;

    /**
     * 审核状态(0:待审核 1:已通过 2:已拒绝)
     */
    @ExcelProperty(value = "审核状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_review_status")
    private String reviewStatus;

    /**
     * 审核人
     */
    @ExcelProperty(value = "审核人")
    private String reviewedBy;

    /**
     * 审核时间
     */
    @ExcelProperty(value = "审核时间")
    private Date reviewTime;

}
